﻿using System;
using System.Collections;
using System.Collections.Generic;
using Server.Misc;
using Server.Network;

namespace Server.Mobiles
{
    public static class Emozioni
    {
        private class TestoColore
        {
            public string testo;
            public int colore;

            public TestoColore(string t, int c)
            {
                testo = t;
                colore = c;
            }
        }

        private static Dictionary<string, TestoColore>elenco;
        private static List<string>proibito;

        public static void Initialize()
        {
            TestoColore tcol;
            elenco = new Dictionary<string, TestoColore>();
            #region Lista Emozioni
            tcol = new TestoColore("*Sorride*",548);
            elenco.Add(":)", tcol);
            elenco.Add(":-)", tcol);
            tcol = new TestoColore("*Ride*", 548);
            elenco.Add(":d", tcol);
            elenco.Add(":-d", tcol);
            elenco.Add("lol", tcol);
            elenco.Add("asd", tcol);
            elenco.Add("ahah", tcol);
            tcol = new TestoColore("*Ride di Gusto*", 548);
            elenco.Add("xd", tcol);
            tcol = new TestoColore("*Ghigna*", 548);
            elenco.Add("gh", tcol);
            tcol = new TestoColore("*Triste*", 548);
            elenco.Add(":(", tcol);
            elenco.Add(":-(", tcol);
            tcol = new TestoColore("*Piange*", 548);
            elenco.Add(";_;", tcol);
            tcol = new TestoColore("", 548);
            elenco.Add("ok", tcol);
            elenco.Add("k", tcol);
            tcol = new TestoColore("*Sbalordito*", 548);
            elenco.Add(":o", tcol);
            elenco.Add(":-o", tcol);
            tcol = new TestoColore("*Perplesso*", 548);
            elenco.Add("-.-", tcol);
            elenco.Add("-_-", tcol);
            tcol = new TestoColore("*Bacia*", 548);
            elenco.Add(":*", tcol);
            tcol = new TestoColore("*Linguaccia*", 548);
            elenco.Add(":p", tcol);
            tcol = new TestoColore("*Indifferente*", 548);
            elenco.Add(":|", tcol);
            tcol = new TestoColore("*Incredulo*", 548);
            elenco.Add("o_o", tcol);
            tcol = new TestoColore("*Arrabbiato*", 548);
            elenco.Add(">_<", tcol);
            elenco.Add(">.<", tcol);
            tcol = new TestoColore("*Allucinato*", 548);
            elenco.Add("@_@", tcol);
            tcol = new TestoColore("*Felice*", 548);
            elenco.Add("^^", tcol);
            tcol = new TestoColore("*Mostra i Canini*", 548);
            elenco.Add("v-v", tcol);
            tcol = new TestoColore("*Assonnato*", 548);
            elenco.Add("u_u", tcol);
            tcol = new TestoColore("*Fa l'occhiolino*", 548);
            elenco.Add(";)", tcol);
            elenco.Add(";-)", tcol);
            tcol = new TestoColore("*Sorpreso*", 548);
            elenco.Add("o.o", tcol);
            tcol = new TestoColore("*Imbronciato*", 548);
            elenco.Add(":/", tcol);

            #endregion

            proibito = new List<string>();
            #region Lista Proibite
            proibito.Add("culo");
            proibito.Add("cazzo");
            proibito.Add("tette");
            proibito.Add("figa");
            proibito.Add("lamer");
            proibito.Add("stronzo");
            proibito.Add("cretino");
            proibito.Add("merda");
            proibito.Add("puttana");
            #endregion
        }

        public static bool ControlloEmozione(string emozione, PlayerMobile player)
        {
            foreach (KeyValuePair<string, TestoColore> lista in elenco)
            {
                if (lista.Key == emozione.ToLower())
                {
                    if (emozione.ToLower().Equals("ok") || emozione.ToLower().Equals("k"))
                    {
                        int n = Utility.Random(10);
                        if (n < 5)
                            lista.Value.testo = "Va Bene";
                        else
                            lista.Value.testo = "D'accordo";
                    }
                    player.Emote(lista.Value.testo, lista.Value.colore);
                    return true;
                }
            }

            if (player.AccessLevel < AccessLevel.GameMaster)
            {
                foreach (string lista in proibito)
                {
                    if (lista == emozione.ToLower())
                    {
                        player.SendMessage("NON PUOI PARLARE IN QUESTO MODO!!!");
                        return true;
                    }
                }
            }
            return false;
        }
    }
}